ビルドログ

ビルドログによる同期は、JSONコンパイルデータベースファイルによる同期と同じように使用されますが、多くの一般的なビルドシステムのログが同期に適しているのと同様、アプリケーションはより一般化されています。 この同期の方法は、以下の状況で使用できます。

  • ビルドログが、コンパイルされた各ソースファイルごとに改行されます。
  • ソースファイルへのパスを含む行に、そのソースファイルのコンパイルに必要なインクルー ドパスおよびマクロ定義も含まれます。

お使いのビルドシステムが、この形式のビルドログの作成をサポートしていない場合、大部分のIDEとビルドシステムについては、コンパイラをラップするスクリプトを使用してログを作成することができ、ログファイルへのコンパイラ実行ファイルへの全呼び出しを出力します。 以下は、Bashを利用したgcc のラッパーの例です。

#!/bin/bash 
echo "$@" >> /home/user/mybuild.log 
exec /usr/bin/gcc "$@"

この例にあるように、すべてのgccへの呼び出しは、この実行ファイルスクリプトに出力先を変える必要があります。 手動でプロジェクトのビルド情報を変更するのではなく、シンプルな方法は、名前を実行ファイル’gcc’にして環境変数PATHの実際のgccの前に配置するやり方です。 プロジェクトに複数のディレクトリからgcc への呼び出しがある場合は、このスクリプトはすべての相対パスを照合するため、変更なしには使用できないかもしれません。 これに対処する方法は、bashスクリプトですべての相対パスを絶対パスに変換することです。

#!/bin/bash
for var in "$@" 
    do
    if [[ $var = *".c"* ]]; then 
        var="${PWD}/${var}"
    fi
    echo -n " ${var}" >> /home/user/mybuild.log
done
echo >> /home/user/mybuild.log 
exec /usr/bin/gcc "$@"

作業ディレクトリのフィールドが無指定のままであると、ビルドログが絶対パスを含む場合は、絶対パスを使用し、または、相対パスを含む場合は、プロジェクトルートディレクトリに対し相対であるとみなされます。